11. 盛最多水的容器

11. 盛最多水的容器

Similar Question

leading to the advanced question

Solution Tips

方案一: 双指针

感觉这题和对撞指针其实没啥关系, 目前已经归类的对撞指针题目主要作用是来缩小搜索范围的, 但是这里的指针调整原因并不一致, 更多是基于数学上的考量

var maxArea = function(height) {
    // 连续子数组, 成绩最大
    // 肯定不能排序啊, 那要怎么对撞指针? 没搞懂
    // 并没有缩减搜索范围, 我总感觉这个就是普通的双指针, 因为双指针的 index 差也参与到计算中了
    let max = 0;
    let left = 0;
    let right = height.length - 1;

    while (left < right) {
        const area = Math.min(height[left] , height[right]) * (right - left);

        if (area > max) {
            max = area;
        }

        // 调整更小的那个? 这样更有希望变大
        if (left >= right) {
            right--;
        } else {
            left++;
        }
    }

    return max;
};

console.log(maxArea([2,3,4,5,18,17,6]));